package edu.ctbu.insurance.service;

import edu.ctbu.insurance.bean.Customer;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author djl
 * @since 2024-06-28
 */
public interface CustomerService extends IService<Customer> {
    /**
     * 既可以查询所有客户信息，也可以按customer_name和customer_phone模糊查询客户信息
     * @param customerName 客户姓名
     * @param customerPhone 客户电话号码
     * @return 返回对应客户信息List
     */
    List<Customer> getAllCustomerLikeNameAndPhone(String customerName,String customerPhone);

    /**
     * 既可以查询所有客户信息，也可以按customer_name和customer_phone模糊查询客户信息,并且实现分页展示
     * @param customerName 客户姓名
     * @param customerPhone 客户电话号码
     * @param pageNum 当前页
     * @param pageSize 每页大小
     * @return 返回对应客户信息List
     */
    List<Customer> getAllCustomerLikeNameAndPhoneAndPageHelper(String customerName,String customerPhone,int pageNum,int pageSize);

    /**
     * 根据customer_id删除，就是将对应delete_flag设置为0
     * @param customerId 客户ID
     * @return 成功返回true，失败返回false
     */
    boolean deleteCustomerById(String customerId);

    /**
     * 查询所有软删除客户信息，并按删除时间降序
     * @return 所有软删除客户信息
     */
    List<Customer> getDeletedCustomer();

    Customer findCustomerByCustomerId(String customerId);
}
